Versi 1
| Field | Isi |
|---|---|
| Dokumen ID | VBS-PBL-002 |
| Deskripsi | Pembayaran hutang kepada supplier / karyawan atas invoice hutang yang belum lunas, beserta ringkasan hutang, daftar, filter, dan pengelolaan status draft / selesai |
| Nomor Revisi | 1 |
| Tanggal | 2026-10-04 |
| Keterangan | Dokumentasi baseline dari dokumentasi fitur demo dan kode FE |
1. Ringkasan
a. In scope
- User melihat ringkasan hutang: hutang belum dibayar, hutang jatuh tempo, dan hutang terbayar 30 hari terakhir.
- User melihat daftar pembayaran hutang (tanggal, nomor invoice, nama supplier / karyawan, status invoice, total pembayaran, keterangan).
- User memfilter daftar berdasarkan tanggal invoice, nomor invoice pembelian, supplier, status (selesai / proses posting / draft), keterangan, invoice hutang, dan total pembayaran.
- User membuat pembayaran hutang: memilih supplier, memilih invoice hutang yang dibayar, mengisi biaya admin dan biaya selisih bayar, lalu mengisi metode pembayaran (termasuk memakai titipan DP).
- User langsung membayar hutang dari invoice pembelian melalui aksi Lunasi Hutang.
- User menyimpan pembayaran sebagai draft atau final.
- User mengubah dan menghapus pembayaran draft, membuka kembali pembayaran selesai ke draft, memposting ulang, mencetak bukti, dan mengubah pembayaran hutang menjadi DP.
b. Catatan
c. Kesimpulan
- [FE] -
- [BE] -
2. Functional Requirement
| Kode | Deskripsi |
|---|---|
| FR-01 | Sistem menampilkan ringkasan hutang belum dibayar, jatuh tempo, dan terbayar 30 hari terakhir bagi user berhak |
| FR-02 | Sistem menampilkan daftar pembayaran hutang non konsinyasi dengan pagination |
| FR-03 | User dapat memfilter daftar pembayaran hutang |
| FR-04 | User dapat membuat pembayaran hutang atas satu atau lebih invoice hutang milik satu supplier |
| FR-05 | Sistem memvalidasi keseimbangan total dibayar dengan total metode pembayaran |
| FR-06 | User dapat menyimpan pembayaran sebagai draft atau final |
| FR-07 | User dapat mengubah dan menghapus pembayaran draft |
| FR-08 | User berhak dapat mengubah pembayaran selesai menjadi draft |
| FR-09 | User dapat memposting ulang pembayaran hutang |
| FR-10 | User dapat mencetak bukti pembayaran hutang |
| FR-11 | User dapat mengubah pembayaran hutang menjadi DP |
3. Use Case List
| Kode | Deskripsi |
|---|---|
| UC-01 | Melihat ringkasan dan daftar pembayaran hutang |
| UC-02 | Memfilter daftar pembayaran hutang |
| UC-03 | Membuat pembayaran hutang |
| UC-04 | Mengubah pembayaran hutang draft |
| UC-05 | Menghapus pembayaran hutang draft |
| UC-06 | Membuka kembali (unlock) pembayaran hutang ke draft |
| UC-07 | Memposting ulang pembayaran hutang |
| UC-08 | Mencetak bukti pembayaran hutang |
| UC-09 | Mengubah pembayaran hutang menjadi DP |
4. Use Case Scenario
UC-01 : Melihat ringkasan dan daftar pembayaran hutang
| Aktor | User dengan hak #pembayaran-hutang |
| Deskripsi | User melihat ringkasan hutang dan daftar pembayaran hutang |
| Prekondisi | User sudah login Brand aktif |
| Alur utama | 1. User membuka menu Pembayaran Hutang. 2. Sistem menjalankan sinkronisasi pembayaran hutang di latar belakang. 3. Sistem menampilkan kartu ringkasan hutang. 4. Sistem menampilkan daftar pembayaran hutang terbaru. |
| Alur negatif | - Jika daftar kosong tanpa filter, muncul "Daftar Invoice masih kosong". - Jika daftar kosong dengan filter, muncul "Invoice Tidak Ditemukan". - Jika ringkasan gagal dimuat, nominal ditampilkan 0. |
| Bisnis rule | - Kartu ringkasan hanya tampil bagi user dengan hak #summary-keuangan.- Daftar hanya memuat pembayaran hutang non konsinyasi. - Status final yang belum terposting tampil sebagai Proses Posting dengan anjuran posting ulang. |
| Postkondisi | Ringkasan dan daftar tampil |
| Trigger | User membuka halaman Pembayaran Hutang |
| Kode FR | FR-01 FR-02 |
UC-02 : Memfilter daftar pembayaran hutang
| Aktor | User dengan hak #pembayaran-hutang |
| Deskripsi | User mempersempit daftar pembayaran hutang |
| Prekondisi | User berada di halaman daftar |
| Alur utama | 1. User mencari nomor invoice. 2. User membuka Filter dan mengisi tanggal invoice, nomor invoice pembelian, supplier, status, keterangan, invoice hutang, dan/atau total pembayaran. 3. Sistem memuat ulang daftar sesuai filter. |
| Alur negatif | - Jika tidak ada data cocok, muncul "Invoice Tidak Ditemukan". - Reset mengosongkan seluruh filter. |
| Bisnis rule | - Status: Selesai, Proses Posting, Draft. - Status Draft berarti pembayaran belum tercetak, status lain berarti sudah final. |
| Postkondisi | Daftar sesuai filter |
| Trigger | User mengubah filter |
| Kode FR | FR-03 |
UC-03 : Membuat pembayaran hutang
| Aktor | User dengan hak #pembayaran-hutang basic |
| Deskripsi | User membayar satu atau lebih invoice hutang milik satu supplier |
| Prekondisi | Supplier memiliki invoice hutang dengan sisa hutang lebih dari 0 dan bukan draft |
| Alur utama | 1. User klik Tambah, atau memilih Lunasi Hutang dari invoice pembelian. 2. User mengisi tanggal dan memilih supplier (bayar hutang dari). 3. Sistem menampilkan invoice hutang supplier yang masih bersisa dan titipan DP supplier. 4. User memilih invoice yang dibayar dan nominal bayarnya. 5. User mengisi biaya admin dan biaya selisih bayar (jika ada). 6. User mengisi metode pembayaran. 7. User memilih Simpan Draft atau Simpan Final, lalu mengonfirmasi. 8. Sistem menyimpan pembayaran dan mengunggah lampiran. |
| Alur negatif | - Jika invoice belum dipilih, muncul "Nota yang ingin dibayar Harus Diisi". - Jika informasi belum lengkap, muncul "Form Informasi Harus Diisi". - Jika metode pembayaran kosong, muncul "Form Metode Pembayaran Harus Diisi". - Jika nominal bayar melebihi sisa hutang, muncul "Nominal Bayar harus kurang dari Sisa Hutang ...". - Jika nominal titipan melebihi sisa DP, muncul "nominal tidak boleh melebihi sisa dp". - Jika final tetapi ada selisih, muncul peringatan "Selisih total pembayaran dan total nilai dibayar harus 0 ..." dengan opsi Simpan Sementara. |
| Bisnis rule | - Satu pembayaran hanya untuk satu lawan transaksi (person supplier). - Invoice hutang yang bisa dipilih: person supplier, karyawan, atau gudang dengan sisa hutang lebih dari 0 dan bukan draft. - Simpan final mewajibkan selisih total dibayar dan total metode pembayaran = 0, selisih pembulatan dimasukkan ke biaya selisih bayar. - Metode titipan memakai invoice DP supplier dengan sisa DP lebih dari 0. - Jika dibuka dari pembelian, supplier dan invoice hutang terisi otomatis. |
| Postkondisi | Pembayaran hutang tersimpan dan sisa hutang invoice berkurang saat final |
| Trigger | User klik Simpan |
| Kode FR | FR-04 FR-05 FR-06 |
UC-04 : Mengubah pembayaran hutang draft
| Aktor | User dengan hak #pembayaran-hutang basic |
| Deskripsi | User memperbaiki pembayaran hutang yang masih draft |
| Prekondisi | Pembayaran berstatus draft |
| Alur utama | 1. User memilih Edit pada menu aksi. 2. Sistem memuat detail pembayaran, invoice yang dibayar, dan metode pembayaran. 3. User mengubah data lalu menyimpan draft / final. |
| Alur negatif | - Validasi sama seperti pembuatan. |
| Bisnis rule | - Menu Edit hanya muncul untuk pembayaran draft. |
| Postkondisi | Pembayaran diperbarui |
| Trigger | User klik Edit |
| Kode FR | FR-07 |
UC-05 : Menghapus pembayaran hutang draft
| Aktor | User dengan hak #can-draft dan #pembayaran-hutang draft |
| Deskripsi | User menghapus pembayaran hutang draft |
| Prekondisi | Pembayaran berstatus draft |
| Alur utama | 1. User memilih Hapus. 2. User mengonfirmasi. 3. Sistem menghapus pembayaran dan menampilkan pesan berhasil. |
| Alur negatif | - Jika server menolak, muncul pesan error. |
| Bisnis rule | - Hapus hanya untuk pembayaran draft. |
| Postkondisi | Pembayaran terhapus dari daftar |
| Trigger | User klik Hapus |
| Kode FR | FR-07 |
UC-06 : Membuka kembali (unlock) pembayaran hutang ke draft
| Aktor | User dengan hak #can-draft dan #pembayaran-hutang draft |
| Deskripsi | User mengubah pembayaran final menjadi draft |
| Prekondisi | Pembayaran sudah final |
| Alur utama | 1. User memilih Ubah ke Simpan Draft. 2. Sistem membuka kunci pembayaran. 3. Muncul "Berhasil Ubah ke Simpan Draft Invoice ...". |
| Alur negatif | - Tanpa hak, menu tidak tampil. - Jika gagal, muncul pesan error. |
| Bisnis rule | - Unlock butuh hak #can-draft dan #pembayaran-hutang draft. |
| Postkondisi | Pembayaran kembali draft |
| Trigger | User klik Ubah ke Simpan Draft |
| Kode FR | FR-08 |
UC-07 : Memposting ulang pembayaran hutang
| Aktor | User dengan hak #pembayaran-hutang basic |
| Deskripsi | User memposting ulang pembayaran yang masih proses posting |
| Prekondisi | Pembayaran final dan status bukan draft |
| Alur utama | 1. User memilih Posting Ulang. 2. Sistem menyinkronkan pembayaran. 3. Muncul pesan berhasil posting ulang. |
| Alur negatif | - Jika gagal, muncul pesan error. |
| Bisnis rule | - Posting ulang dijalankan langsung (bukan worker). |
| Postkondisi | Pembayaran terposting |
| Trigger | User klik Posting Ulang |
| Kode FR | FR-09 |
UC-08 : Mencetak bukti pembayaran hutang
| Aktor | User dengan hak #pembayaran-hutang reprint |
| Deskripsi | User mencetak bukti pembayaran hutang |
| Prekondisi | Pembayaran memenuhi syarat cetak ulang |
| Alur utama | 1. User memilih Cetak Nota. 2. Sistem mencatat riwayat cetak dan memuat detail. 3. Sistem membuat layout cetak beserta kop surat. |
| Alur negatif | - Jika gagal memuat data, muncul pesan error. |
| Bisnis rule | - Cetak ulang mengikuti riwayat cetak dan hak reprint. |
| Postkondisi | Bukti pembayaran tercetak |
| Trigger | User klik Cetak Nota |
| Kode FR | FR-10 |
UC-09 : Mengubah pembayaran hutang menjadi DP
| Aktor | User brand |
| Deskripsi | User mengonversi pembayaran hutang menjadi titipan DP |
| Prekondisi | Pembayaran hutang tersedia di daftar |
| Alur utama | 1. User memilih Ubah Jadi DP. 2. Sistem mengonversi pembayaran. 3. Muncul "Berhasil ubah pembayaran hutang menjadi DP". |
| Alur negatif | - Jika gagal, muncul pesan error. |
| Bisnis rule | - Konversi dikirim sebagai daftar id invoice. |
| Postkondisi | Pembayaran tercatat sebagai DP |
| Trigger | User klik Ubah Jadi DP |
| Kode FR | FR-11 |
5. Data Flow Diagram
DFD-01 — Alur pembayaran hutang
DFD-02 — Status pembayaran hutang
6. Sequence Diagram
SD-01 — UC-01 : Melihat ringkasan dan daftar pembayaran hutang
SD-02 — UC-02 : Memfilter daftar pembayaran hutang
SD-03 — UC-03 : Membuat pembayaran hutang
SD-04 — UC-04 : Mengubah pembayaran hutang draft
SD-05 — UC-05 : Menghapus pembayaran hutang draft
SD-06 — UC-06 : Membuka kembali (unlock) pembayaran hutang ke draft
SD-07 — UC-07 : Memposting ulang pembayaran hutang
SD-08 — UC-08 : Mencetak bukti pembayaran hutang
SD-09 — UC-09 : Mengubah pembayaran hutang menjadi DP
7. Table Schema
8. API Schema
| Endpoint | Status | Perubahan |
|---|---|---|
POST /financial-report/invoice-hutang-report | existing | - |
POST /financial-report/invoice-bayar-hutang-report | existing | - |
GET /invoice-bayar-hutang | existing | - |
GET /invoice-bayar-hutang/:id | existing | - |
POST /invoice-bayar-hutang | existing | - |
PUT /invoice-bayar-hutang/:id | existing | - |
DELETE /invoice-bayar-hutang/:id | existing | - |
POST /invoice-bayar-hutang/unlock | existing | - |
POST /invoice-bayar-hutang/sync | existing | - |
POST /invoice-bayar-hutang/sync-bulk | existing | - |
PUT /invoice-bayar-hutang/invoice-only/:id | existing | - |
POST /invoice-bayar-hutang/upload/:id | existing | - |
POST /cross-invoice-transaction/ibh-to-dp | existing | - |
GET /invoice-hutang | existing | - |
GET /invoice-dp | existing | - |